<?php

class SiteController extends Controller
{
	/**
	 * Declares class-based actions.
	 */
	public function actions()
	{
		return array(
			// captcha action renders the CAPTCHA image displayed on the contact page
			'captcha'=>array(
				'class'=>'CCaptchaAction',
				'backColor'=>0xFFFFFF,
			),
			// page action renders "static" pages stored under 'protected/views/site/pages'
			// They can be accessed via: index.php?r=site/page&view=FileName
			'page'=>array(
				'class'=>'CViewAction',
			),
		);
	}

	/**
	 * This is the default 'index' action that is invoked
	 * when an action is not explicitly requested by users.
	 */
	public function actionIndex()
	{
		try{
			//services
			$services = $this->getCMS('services', 6);
			//blog
			$blog = $this->getCMS('blog', 3);
			$this->render('index', array(
				'blog' => $blog,
				'services' => $services
			));
		}catch(Exception $e){
			Yii::log("Invalid request(Language). Please do not repeat this request again.");
            throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.');
		}
	}

	public function actionList(){
		try{
			$id = isset($_GET['sub_id']) ? $_GET['sub_id'] : (isset($_GET['cms_id']) ? $_GET['cms_id'] : '');
			if($id !== ''){
				$menu = MyFunctionCustom::getMenuBySlug($id);
				$criteria = new CDbCriteria;
				$criteria->select = 't.*';
				$criteria->condition = "t.menu_id=:menu";
				$criteria->params = array( ":menu" => $menu['id']);
				$criteria->order = "t.created_date DESC";
				$data = Cms::model()->findAll($criteria);
				$this->render('list', compact('data'));
			}		
		}catch(Exception $e){
			Yii::log("Invalid request(Language). Please do not repeat this request again.");
            throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.');
		}
	}

	public function actionView(){
		try{
			if(isset($_GET['id'])){
				$data = Cms::model()->findByPk($_GET['id']);
				$this->render('view', compact('data'));
			}
		}catch(Exception $e){
			Yii::log("Invalid request(Language). Please do not repeat this request again.");
            throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.');
		}
	}
	public function getCMS($page, $limit){
		$criteria = new CDbCriteria;
		$criteria->select = 't.*';
		$criteria->condition = "t.index=:index AND t.page=:page";
		$criteria->params = array(":index" => 1, ":page" => $page);
		$criteria->order = "t.created_date DESC";
		$criteria->limit = $limit;
		$cms = Cms::model()->findAll($criteria);
		return $cms;
	}

	public function actionError()
	{
		if($error=Yii::app()->errorHandler->error)
		{
			if(Yii::app()->request->isAjaxRequest)
				echo $error['message'];
			else
				$this->render('error', $error);
		}
	}

	/**
	 * Displays the contact page
	 */
	public function actionContact()
	{
		if(isset($_POST['email'])){
			$message = new YiiMailMessage;
			$message->view = "email";
			$contact = array();
			$contact['name'] = $_POST['name'];
			$contact['email'] = $_POST['email'];
			$contact['subject'] = $_POST['subject'];
			$contact['message'] = $_POST['message'];
			
			$params = array('contact' => $contact);
			$message->subject = 'Contact';
		    $message->setBody($params, 'text/html');

		    $message->addTo(Yii::app()->params['email']);
		    $message->addBcc('nghuytap@gmail.com');
		    $message->addReplyTo($contact['email'], $contact['name']);
		    $message->addFrom($contact['email'], 'Contact');
		    $result = Yii::app()->mail->send($message);
		    if($result){
		    	echo CJSON::encode(1);
		    }else{
		    	echo CJSON::encode(0);
		    }
		}
	}

	/**
	 * Displays the login page
	 */
	public function actionLogin()
	{
		$model=new LoginForm;

		// if it is ajax validation request
		if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
		{
			echo CActiveForm::validate($model);
			Yii::app()->end();
		}

		// collect user input data
		if(isset($_POST['LoginForm']))
		{
			$model->attributes=$_POST['LoginForm'];
			// validate user input and redirect to the previous page if valid
			if($model->validate() && $model->login())
				$this->redirect(Yii::app()->user->returnUrl);
		}
		// display the login form
		$this->render('login',array('model'=>$model));
	}

	/**
	 * Logs out the current user and redirect to homepage.
	 */
	public function actionLogout()
	{
		Yii::app()->user->logout();
		$this->redirect(Yii::app()->homeUrl);
	}
}